<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>

        /**
         *构造函数就是一个普通函数，创建方式和普通函数没有什么区别，
             不同的是构造函数习惯上首字母大写
             
             构造函数和普通函数的区别就是调用方式不同
                普通函数是直接调用，而构造函数需要使用new关键字来调用

            构造函数的执行流程：
                1.立即创建一个新的对象
                2.将新建的对象设置为函数中的this，在构造函数中可以使用this来引用新建的对象
                3.逐渐执行函数中的代码
                4.返回新创建的对象

            使用同一个构造函数创建的对象，我们称之为一类对象，
            也将一个构造函数称为一个类    
         */

        //创建一个构造函数，专门用来创建Person对象
        function Persion(name,age,gender){
            this.name = name;
            this.age=age;
            this.gender = gender;
            this.sayName = function(){
                alert(this.name);
            };
        }


        function Dog(){

        }

        var per = new Persion("张三",18,"男");
        var per1 = new Persion("李四",20,"女");
        var per2 = new Persion("王五",30,"男");

        var dog = new  Dog();
        console.log(per);
        console.log(per1);  
        console.log(per2);

        console.log(dog);

        //检查per是否是Persion的实例
        console.log(per instanceof Persion)  

        console.log(dog instanceof Object)

    </script>
</head>
<body>
    
</body>
</html>